
#line 1 "..\main.c" /0
  
#line 1 "..\..\..\..\..\..\..\..\..\Keil_v5\C51\INC\reg52.h" /0






 
 
 
 
 
 
 sfr P0    = 0x80;
 sfr P1    = 0x90;
 sfr P2    = 0xA0;
 sfr P3    = 0xB0;
 sfr PSW   = 0xD0;
 sfr ACC   = 0xE0;
 sfr B     = 0xF0;
 sfr SP    = 0x81;
 sfr DPL   = 0x82;
 sfr DPH   = 0x83;
 sfr PCON  = 0x87;
 sfr TCON  = 0x88;
 sfr TMOD  = 0x89;
 sfr TL0   = 0x8A;
 sfr TL1   = 0x8B;
 sfr TH0   = 0x8C;
 sfr TH1   = 0x8D;
 sfr IE    = 0xA8;
 sfr IP    = 0xB8;
 sfr SCON  = 0x98;
 sfr SBUF  = 0x99;
 
 
 sfr T2CON  = 0xC8;
 sfr RCAP2L = 0xCA;
 sfr RCAP2H = 0xCB;
 sfr TL2    = 0xCC;
 sfr TH2    = 0xCD;
 
 
 
 
 sbit CY    = PSW^7;
 sbit AC    = PSW^6;
 sbit F0    = PSW^5;
 sbit RS1   = PSW^4;
 sbit RS0   = PSW^3;
 sbit OV    = PSW^2;
 sbit P     = PSW^0;  
 
 
 sbit TF1   = TCON^7;
 sbit TR1   = TCON^6;
 sbit TF0   = TCON^5;
 sbit TR0   = TCON^4;
 sbit IE1   = TCON^3;
 sbit IT1   = TCON^2;
 sbit IE0   = TCON^1;
 sbit IT0   = TCON^0;
 
 
 sbit EA    = IE^7;
 sbit ET2   = IE^5;  
 sbit ES    = IE^4;
 sbit ET1   = IE^3;
 sbit EX1   = IE^2;
 sbit ET0   = IE^1;
 sbit EX0   = IE^0;
 
 
 sbit PT2   = IP^5;
 sbit PS    = IP^4;
 sbit PT1   = IP^3;
 sbit PX1   = IP^2;
 sbit PT0   = IP^1;
 sbit PX0   = IP^0;
 
 
 sbit RD    = P3^7;
 sbit WR    = P3^6;
 sbit T1    = P3^5;
 sbit T0    = P3^4;
 sbit INT1  = P3^3;
 sbit INT0  = P3^2;
 sbit TXD   = P3^1;
 sbit RXD   = P3^0;
 
 
 sbit SM0   = SCON^7;
 sbit SM1   = SCON^6;
 sbit SM2   = SCON^5;
 sbit REN   = SCON^4;
 sbit TB8   = SCON^3;
 sbit RB8   = SCON^2;
 sbit TI    = SCON^1;
 sbit RI    = SCON^0;
 
 
 sbit T2EX  = P1^1;  
 sbit T2    = P1^0;  
 
 
 sbit TF2    = T2CON^7;
 sbit EXF2   = T2CON^6;
 sbit RCLK   = T2CON^5;
 sbit TCLK   = T2CON^4;
 sbit EXEN2  = T2CON^3;
 sbit TR2    = T2CON^2;
 sbit C_T2   = T2CON^1;
 sbit CP_RL2 = T2CON^0;
 
 
#line 1 "..\main.c" /0
 
 
 
 
 
 
 
 
 sbit EOC 	= P3^5;		 
 sbit START 	= P3^6;		 
 sbit CLOCK 	= P3^7;		 
 sbit OE 	= P3^4;		 
 sbit ADD_A 	= P3^0;		 
 sbit ADD_B	= P3^1;		 
 sbit ADD_C	= P3^2;		 
 
 
 sbit smg1 = P2^0;
 sbit smg2 = P2^1;
 sbit smg3 = P2^2;
 sbit smg4 = P2^3;
 
 
 
 unsigned char leddata[10]={ 
 0x3F,   
 0x06,   
 0x5B,   
 0x4F,   
 0x66,   
 0x6D,   
 0x7D,   
 0x07,   
 0x7F,   
 0x6F,   
 };
 
 
 
 
 void Delay1ms()		 
 {
 unsigned char i, j;
 
 i = 2;
 j = 239;
 do
 {
 while (--j);
 } while (--i);
 }
 
 
 void delay_ms(unsigned int time)
 {
  unsigned int i;
 for(i=0; i<time; i++)
 {
 Delay1ms();
 }
 }
 
 
 
 void disply_three_digit(unsigned int i)
 {
 unsigned int ge,shi,bai;
 
 bai = i / 100;
 shi = i % 100 / 10;
 ge  = i % 10;
 
 P0 = leddata[ge];
 smg4 = 0;
 delay_ms(1);
 smg4 = 1;
 
 P0 = leddata[shi];
 smg3 = 0;
 delay_ms(1);
 smg3 = 1;
 
 P0 = leddata[bai];
 smg2 = 0;
 delay_ms(1);
 smg2 = 1;
 }
 
 
 
 void system_Init(void)
 {
 
 P0 = 0xff;
 P1 = 0xff;
 P2 = 0xff;
 }
 






 
 void InitTimer1(void)
 {
 TMOD = 0x20;	 
 TH1 = 0x38;
 TL1 = 0x38;		 
 EA = 1;			 
 ET1 = 1;		 
 TR1 = 1;		 
 }
 







 
  unsigned char ADC0809_Result(unsigned char adc_number)
 {
  unsigned char result = 0;	 
 
 
 START = 0;
 OE = 0;
 START = 1;
 
 
 switch(adc_number)
 {
 case 1:
 ADD_C = 0;
 ADD_B = 0;
 ADD_A = 0;
 break;
 case 2:
 ADD_C = 0;
 ADD_B = 0;
 ADD_A = 1;
 break;
 case 3:
 ADD_C = 0;
 ADD_B = 1;
 ADD_A = 1;
 break;
 case 4:
 ADD_C = 0;
 ADD_B = 1;
 ADD_A = 1;
 break;
 case 5:
 ADD_C = 1;
 ADD_B = 0;
 ADD_A = 0;
 break;
 case 6:
 ADD_C = 1;
 ADD_B = 0;
 ADD_A = 1;
 break;
 case 7:
 ADD_C = 1;
 ADD_B = 1;
 ADD_A = 0;
 break;
 case 8:
 ADD_C = 1;
 ADD_B = 1;
 ADD_A = 1;
 break;
 }
 
 
 START = 0;
 while(EOC == 0);	 
 OE = 1;				 
 result = P1;;
 
 return result;		 
 }
 
 void main()
 {
  unsigned char temp = 0;
 
 system_Init();
 InitTimer1();
 while(1)
 {
 temp = ADC0809_Result(3); 
 disply_three_digit(temp); 
 }
 }
 
 void Timer1Interrupt(void) interrupt 3
 {
 CLOCK = ~CLOCK;		 
 }
